#include "btform.h"
#include "ui_btform.h"
#include <QDebug>
btForm::btForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::btForm)
{
    ui->setupUi(this);
    ui->lineBox->hide();//设置都不显示动画

    //实例化对象，第一个参数表示给谁设置动画，第二个参数表示动画如何变动
    //geometry表示像矩形一样滑动，最后一个则表示该实例的父对象
    animationLine1=new QPropertyAnimation(ui->lin1,"geometry",this);
    //设置动画持续时长，单位毫秒
    animationLine1->setDuration(1500);
    //这个函数是用来创建关键帧的
    //第一个参数：值在0~1之间,0表⽰开始，1表⽰停⽌
    //第二个参数：动画的⼀个关键帧，即动画现在的形态，假设是基于geometry
    //可以设置矩形的范围这里用QRect表示x：矩形左上角的 x 坐标。y：矩形左上角的 y 坐标。
    //width：矩形这一帧的宽度。height：矩形这一帧的高度。
    //最开始矩形在最低位置这一帧高度为零
    animationLine1->setKeyValueAt(0,QRect(4,26,2,0));
    //这一帧在最高位置，高度就是矩形的最大高度
    animationLine1->setKeyValueAt(0.5,QRect(4,9,2,17));
    //又返回最低位置
    animationLine1->setKeyValueAt(1,QRect(4,26,2,0));
    //表示循环次数  -1则表示无限循环
    animationLine1->setLoopCount(-1);
    animationLine1->start();

    animationLine2=new QPropertyAnimation(ui->lin2,"geometry",this);
    animationLine2->setDuration(1600);
    animationLine2->setKeyValueAt(0,QRect(10,26,2,0));
    animationLine2->setKeyValueAt(0.5,QRect(10,9,2,17));
    animationLine2->setKeyValueAt(1,QRect(10,26,2,0));
    animationLine2->setLoopCount(-1);
    animationLine2->start();

    animationLine3=new QPropertyAnimation(ui->lin3,"geometry",this);
    animationLine3->setDuration(1700);
    animationLine3->setKeyValueAt(0,QRect(16,26,2,0));
    animationLine3->setKeyValueAt(0.5,QRect(16,9,2,17));
    animationLine3->setKeyValueAt(1,QRect(16,26,2,0));
    animationLine3->setLoopCount(-1);
    animationLine3->start();

    animationLine4=new QPropertyAnimation(ui->lin4,"geometry",this);
    animationLine4->setDuration(1800);
    animationLine4->setKeyValueAt(0,QRect(22,26,2,0));
    animationLine4->setKeyValueAt(0.5,QRect(22,9,2,17));
    animationLine4->setKeyValueAt(1,QRect(22,26,2,0));
    animationLine4->setLoopCount(-1);
    animationLine4->start();


    qDebug()<<ui->lineBox->geometry();
}


btForm::~btForm()
{
    delete ui;
}

int btForm::getpageId() const
{
    return this->pageId;
}

void btForm::clearBackground()
{
    ui->btstyle->setStyleSheet("#btStyle:hover{ background:#D8D8D8;} ");
}

void btForm::showAnimal(bool isShow)
{
    // 当按钮点击时，根据isShow状态显⽰或隐藏动画
    if(isShow)
    {
        ui->lineBox->show();
    }
    else
    {
        ui->lineBox->hide();
    }
}

void btForm::setIconAndText(const QString &btIcon, const QString btText,int pageId)
{
    //btIcon属于ui界面的一个元素可以通过ui->btIcon找到最左侧所对应的QLabel
    //setPixmap函数用来设置图标
    ui->btlcon->setPixmap(QPixmap(btIcon));
    //设置按钮文本
    ui->btText->setText(btText);
    this->pageId=pageId;
}

void btForm::mousePressEvent(QMouseEvent *event)
{
     ui->btstyle->setStyleSheet("#btstyle { background-color: rgb(30, 206, 154); }");

    emit btClick(this->pageId);
}

